package com.basker.pisces.core.io;

import java.io.File;
import java.io.IOException;

import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;

/**
 * 临时文件Resource，因为实现了{@link Resource}接口，可以与spring框架的各个组件交互，比如spring-web的文件下载。
 *
 * @author hangwen
 */
public class TempFileSystemResource extends FileSystemResource {

    private String fileName;
    private String suffix;

    public TempFileSystemResource(String fileName, String suffix) throws IOException {
        super(File.createTempFile(fileName, suffix));
        this.fileName = fileName;
        this.suffix = suffix;
    }

    /**
     * 去掉了临时文件名的随机数部分，返回文件的逻辑名
     */
    @Override
    public String getFilename() {
        if (suffix == null) {
            return fileName;
        }

        if (suffix.charAt(0) != '.') {
            suffix = "." + suffix;
        }

        return fileName + suffix;
    }

}
